--[[

    类 class
    对象   new class()
    继承，构造，析构

    table {}
    metatable {}

]]
--

local userInfo = { id = 123, name = "tom", age = 99 }

userInfo.__index = userInfo

local u1 = userInfo
local u2 = u1

function userInfo:new(obj)
	obj = obj or {}
	setmetatable(obj, self)
	return obj
end

function userInfo:setAge(val)
	self.age = self.age + val --取 userInfo 的age + val,再写给u3
end

local u3 = userInfo:new({ id = 456 })

print(u2.age, u3.age)
u3:setAge(100)
print(u2.age, u3.age) --99 199

